package com.boot.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.boot.dto.PublishQuestionDTO;
import com.boot.entity.Question;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 * 问题表，用于存储用户提交的问题 服务类
 * </p>
 *
 * @author bbyh
 * @since 2025-10-29
 */
public interface IQuestionService extends IService<Question> {
    /**
     * 检查当前用户是否有未解决的问题
     * @return true 表示可以发布（无未解决），false 表示已有未解决
     */
    boolean canUserPublish();

    /**
     * 发布一个新问题（不含附件）
     */
    Long publishQuestion(PublishQuestionDTO dto);

    Page<Question> getMyPublishedQuestions(Page<Question> page, Long userId);

    Page<Question> getHandledQuestionsByExpertId(Page<Question> page, Long expertId);

    /**
     * 更新问题（不含附件）
     */
    void updateQuestion(PublishQuestionDTO dto, Long questionId);

    /**
     * 将问题标记为已解决（仅提问人可操作）
     */
    boolean markAsResolved(Long questionId);
}
